1. Field
The present invention relates generally to data communication, and more specifically to techniques for starting transmission of packets early at a transmitting device and playing out received packets early at a receiving device to reduce delays.
2. Background
Wireless communication systems are widely deployed to provide various types of communication such as voice, packet data, and so on. These systems may be multiple-access systems (e.g., CDMA and GSM systems) capable of supporting communication with multiple users.
For a given communication system, data is typically processed by a number of protocols for a number of layers in a protocol stack at both the transmitting and receiving devices. As an example, the protocol stack for each device may include the following protocols: RTP, UDP/TCP, IP, PPP, and RLP (all are described below). Conventionally, the processing by the protocol at each layer does not start until all data needed to generate a complete data unit (e.g., a packet) is received by that protocol. Thus, for data transmission (or reception), each protocol processes complete packets received from the next higher (or lower) layer and provides complete processed packets to the next lower (or higher) layer. This processing on complete packets is acceptable for many applications (e.g., packet data) that are not sensitive to processing and transmission delays.
For certain applications (e.g., real-time applications such as voice and video), the processing and transmission delays can have a large impact on performance. Moreover, some applications (e.g., voice) provide data in frames that are smaller in size than a typical-size packet. To improve efficiency, multiple data frames may then be bundled into each packet for transmission. The bundling of the data frames and the processing on complete packets can result in longer delays at both the transmitting and receiving devices. For real-time applications, performance may be impacted by the longer delays.
There is therefore a need in the art for techniques to process data in a manner to reduce processing and transmission delays.